package cn.com.blueInfo.bpm.system.repository;

import cn.com.blueInfo.bpm.system.entity.Dict;
import cn.com.blueInfo.bpm.system.request.DictDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 枚举 数据服务类
 * @author suxch
 * @since 2025-09-01 19:17:41
 */
public interface DictRepository extends IService<Dict> {

    /**
     * 新增枚举
     * @param dict 枚举参数
     */
    Integer createDict(Dict dict);

    /**
     * 批量新增枚举
     * @param dictList 枚举参数列表
     */
    Integer batchCreateDict(List<Dict> dictList);

    /**
     * 删除枚举
     * @param dictId 枚举ID
     */
    Integer deleteDict(Long dictId);

    /**
     * 批量删除枚举
     * @param dictIdList 枚举ID列表
     */
    Integer batchDeleteDict(List<Long> dictIdList);

    /**
     * 更新部分枚举
     * @param dict 枚举参数
     */
    Integer updateDictPartial(Dict dict);

    /**
     * 更新全部枚举
     * @param dict 枚举参数
     */
    Integer updateDict(Dict dict);

    /**
     * 查询一条枚举
     * @param dictId 枚举ID
     */
    Dict getDictById(Long dictId);

    /**
     * 分页查询枚举
     * @param dictQueryDTO 枚举参数
     */
    Page<Dict> getDictPage(DictDTO.QueryDTO dictQueryDTO);

    /**
     * 根据条件查询 枚举 数量
     * @param dictQueryDTO 枚举参数
     */
    Long getDictCount(DictDTO.QueryDTO dictQueryDTO);

    /**
     * 根据条件查询 枚举
     * @param dictQueryDTO 枚举参数
     */
    List<Dict> getDictList(DictDTO.QueryDTO dictQueryDTO);

}
